home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Magnum One
/
Magnum One (Mid-American Digital) (Disc Manufacturing).iso
/
d8
/
tshare.arc
/
TSHARE.DOC
< prev
Wrap
Text File
|
1991-01-10
|
13KB
|
327 lines
/=========\
| T-SHARE |
\=========/
Computing Resource Center
2116 Wilshire Blvd. #202
Santa Monica, Ca. 90405
Attn: Marty Ross
Release: 2.1, 08/01/84
By: Marty Ross, at the Computing Resource Center
System: IBM-PC with standard communications adapter (COM:)
Requirements: Tested using PC-DOS 2.0/2.1, 128K or larger PC preferred.
Contribution: Suggested $10.00; puts you on CRC mailing list.
Abstract: TSHARE is a demonstration terminal emulator, showing the
capability of the IBM-PC to multitask, in a practical way.
Distribution: I am distributing this preliminery version freely,
in hopes to stimulate interest and feedback. No fee
may be charged, and this document must accompany the
program(s) documented herein.
Description: TSHARE is a "background" terminal emulator. Unlike most
"terminal" programs for the IBM-PC which 'tie up' the
computer, TSHARE, once activated, can be used simultaneously
with almost any other application.
Features: Other than its ability to share the IBM-PC with "foreground"
tasks, TSHARE supports a 'typeahead line turnaround protocol',
which may be used on many IBM mainframe systems (e.g. VM/SP)
to enable a 'typeahead' capability. Also, HALF DUPLEX operation
may be selected for systems which don't 'echo' characters sent.
Thirdly, it is possible to disable the effect of incoming BELL
characters, in case you wish to be discrete about your terminal
voyages on systems which make liberal use of bells (a feature
which should have been built into the PC, in my opinion). The
last "feature" I will mention really should be a requirement for
any "terminal" program: the ability to transmit a "BREAK" signal
to the host computer (required by many half duplex hosts which
cannot 'watch' for control characters like ^C and ^S).
Usage: TSHARE is distributed in two parts: "NEW14H.COM", which, by
itself, provides a powerful enhancement to the communication
ability of the IBM-PC using its async (COM:) adapter, and
"TSHARE.COM", the 'application' component.
To refresh your memory after learning about TSHARE, or for
complete syntax rules for activating TSHARE, type "TSHARE ?"
in DOS for a help screen. The same applies to the "NEW14H"
program.
There are four steps necessary to activate TSHARE so that
it may be used as a terminal emulator:
1.) Initialize PC-DOS
2.) Install the NEW14H communication enhancements
3.) Install the TSHARE application component
4.) Initialize the COM: port for desired baud/parity
(TSHARE DOES NOT DO THIS: USE PC-DOS "MODE.COM")
A typical installation sequence (which can be combined into
a .BAT file, such as "AUTOEXEC.BAT"):
+---------------------------------------------------------+
| |
(1) | <ALT>+<CTL>+<DEL> ... |
| |
| IBM Disk Operating System |
| Version 2.xx ... |
| |
(2) | A>new14h |
| NEW14H - 2.x - 08/01/84 - M.Ross @CRC, (C) 1984 |
| Auxiliary COM1: port driver active. |
| |
(3) | A>tshare |
| TSHARE - 2.x - 08/01/84 - M.Ross @CRC, (C) 1984 |
| (Using NEW14H enhancements ver 2.x) |
| |
(4) | A>mode com1:300,n,8 |
| |
| A>rem TSHARE can now be "called up" anytime until |
| A>rem we re-boot (CTL+ALT+DEL), by pressing |
| A>rem '<SHIFT>+[PrtSc]', unless another program |
| A>rem redefines our interrupts. |
| |
+---------------------------------------------------------+
Figure 1.
Notice that after "running" the TSHARE program, we came back to PC-DOS.
To reiterate, TSHARE works "in the background", and is transparent to
the PC-DOS user, until he switches into "terminal mode". From any
subsequent environment[1], terminal mode may be entered by pressing
the <SHIFT>+[PrtSc] keys together[2]. For example, while assembling
a lengthy program using the Macro Assembler, if TSHARE is active,
press <SHIFT>+[PrtSc], and initiate a terminal session:
+---------------------------------------------------------+
| |
| A>masm myprog |
| Object file [MYPROG.OBJ]: |
| Listing file [NUL]: |
| Cross Reference [NUL]: |
| |
| T-Share: ON |
| |
| AT TD 1-213-829-1487 |
| CONNECT |
| |
| CRC-PC online |
| |
+---------------------------------------------------------+
Figure 2.
First, we started our "foreground task" (the assembler), then we
switched into terminal mode by pressing <SHIFT>+[PrtSc]. TSHARE
indicated our "terminal" status, and immediately placed us online
(in example, to a Hayes Modem), from where we can start/continue
our current terminal session.
Note that if the foreground task sends output to the screen, it will
be interleaved with our terminal output. In future versions, it may
be possible to re-route, ignore, or accumulate foreground output.
It would be easy to implement a "split-screen" where a given portion
of the screen would be 'dedicated' to terminal output, while the rest
will display the output from the foreground task (see 'Directions:').
If we switch back to the foreground task (get out of terminal mode)
before concluding our terminal session, then any data which comes in
over the communication line is saved (because of NEW14H interrupt
facilities: up to 32K of data), and will be quickly displayed by
TSHARE, until it is 'caught up' with the incoming data. To 'freeze'
the fast display of buffered data, use <Ctrl>+<S>. Any character
will cause the listing to resume.
In order to transmit a BREAK signal (approx 500 millisecond MARK
state), while in terminal mode only, use the <Ctrl>+[Break] key
pair. In terminal mode, this action does not affect the foreground
task.
Why TSHARE?: TSHARE was written because I do alot of compilation using
a good, but slow compiler. I purchased a COM: port in order
to facilitate my interaction with our large computer at work,
only to find that I really needed an extra terminal for use
when my PC was busy churning away on my programs. I found it
unforgivable that none of the other "popular" terminal programs
would use the (almost) wonderful multi-tasking capabilities of
the IBM-PC, and therefore my investment in additional hardware
was less attractive because I couldn't use it most of the time!
By using the communication interrupts (NEW14H), and a simple
byte multiplexor scheme (TSHARE uses the PC-BIOS timer inter-
rupt), these goals were easily achieved with a few hours of
assembly programming.
Future Future versions of TSHARE will necessarily incorporate a
Directions: file transfer protocol; perhaps XMODEM. Also, ANSI emulation
is on the agenda since full-screen support over low speed lines
will shortly be available for our VM/SP system. Thus, IBM
3270 style communication or other 'formatted screen' support
will be possible. Alternatively, a "terminal window" can
be used so that both foreground and "background" tasks can
be monitored on the same screen, without confusion, as may
result with this version's scheme of interleaving both
terminal and foreground output.
Disclaimer: Though I've tested TSHARE under varying conditions, I cannot
guarantee that TSHARE will work in every case/PC configuration.
Also, I suggest you use caution when using TSHARE in new
situations (foreground programs, etc): I will not be liable
for any damage caused, but would like to be informed if any
undesireable TSHARE interactions occur. Please write me.
About the Author:
Marty Ross is a consultant for the Computing Resource Center,
a Santa Monica based data processing firm. CRC uses the IBM
VM/SP operating system to provide its clients with an inter-
active method to access popular data handling facilities,
such as SAS, PL/1, FORTRAN, and the On-Line Data System, CRC's
own database management product. Recently, CRC has purchased
IBM-PC's to link many of its remote clients to the mainframe
system. To facilitate compatibility with other microcomputers
and terminals, CRC has operated a public access DEMOnstration
account and bulletin board system where anyone with a terminal
can call to find out about our services, rates, or expertise.
Because of this, keep your eye out for more communication
software from CRC: especially if interested in the elusive
"micro -> mainframe link" which seems to be in a state of
constant re-definition in other data processing circles.
----------------------------
[1] NEW14H, and therefore TSHARE will be destroyed by programs such as BASIC
or BASICA which re-define the communication interrupt driver(s). Also,
only "nice" programs which do not 'steal' the keyboard, video, PrtSc,
or timer interrupts may be used successfully with TSHARE.
[2] Perhaps it is unfortunate that TSHARE uses the <SHIFT>+[PrtSc] key
thus disabling it as a "print screen" function. Remember, however;
this is only a demonstration program and was not written with profes-
sional intent. If enough interest is shown, future versions will
be released to those contributing new ideas, free of charge.
-----------------------------
/=========\
| T-SHARE |
\=========/
Comments?
Can you use TSHARE?
Name: _________________________________________________________
Address: _________________________________________________________
_________________________________________________________
_________________________________________________________
---------------------------------------------------------
Comments: _________________________________________________________
_________________________________________________________
_________________________________________________________
_________________________________________________________
_________________________________________________________
_________________________________________________________
_________________________________________________________
_________________________________________________________
_________________________________________________________
_________________________________________________________
_________________________________________________________
If you feel TSHARE contributes to your effectiveness, then please let
me know by sending a donation of $10.00 or whatever you feel is ap-
propriate. TSHARE was developed in my spare time, and is now not a
commercial effort of CRC. I will continue to develop products like
TSHARE for those who show interest - provided I can afford it. Users
who make contributions will be entitled to a single sided diskette
of other utilities I've developed while at CRC: please include your
name and return address when sending donations!
oneed: ret
adv_bf endp
;
; Advance Xbf: Same as above, for output buffer.
;
adv_xbf proc near
inc di
cmp di,offset xbuffer_end
jc noneedx
mov di,offset xbuffer ; wrap if at end of buffer
noneedx: ret
adv_xbf endp
;
;
cbr: jmp combreak
cmt: jmp comout
sbt: jmp status_bytes
cfl: jmp comflush
sbp: jmp setbp
;
; New Int14H: Our code which intercepts INT14, AH=0, 1, 2, 3, and added fncs.
;
new_int14h proc far
sti
push ds
getcode
cmp dl,com_port ; is request for our device?
jnz get_out ; not us, get out!
or dh,dh ; or invalid port #?
jnz get_out ; get out!
; right device -- now check for supported function (to intercept)
cmp ah,c_activity ; is it 'com active?'
jz comactive
cmp ah,bf_hit ; is it 'any chars in buf' ?
jz bfhit
cmp ah,chkbuf_code ; or 'check buffer' ?
jz comrdy
cmp ah,send_code ; is it 'send character' ?
jz cmt
cmp ah,recv_code ; is it 'receive character' ?
jz recv_byte
cmp ah,status_code ; is it 'port status' ?
jz sbt
cmp ah,length_code ; is it one of our functions ?
jz leng ; get length code?
cmp ah,flush_code ; or 'flush buffer' ?
jz cfl
cmp ah,break_code ; or 'send break signal' ?
jz cbr
cmp ah,read_id ; or 'read identification' ?
jz return_id
cmp ah,reset_ints ; or 'reset interrupt system' ?
jz rst_int
cmp ah,init_code ; or 'set baud/parity' ?
jz sbp
jmp get_out
;
; unsupported function -- pass it to old the old INT14h handler
get_out: pop ds
jmp cs:old_int14h ; go to old int 14 handler
;
leng: call get_length ; retn # chars in cominput buff
retds: pop ds
iret
;
; COM_ACTIVE: